[IA64] kexec: Unpin TLB in the hypervisor
authorAlex Williamson <alex.williamson@hp.com>
Fri, 29 Feb 2008 16:18:01 +0000 (09:18 -0700)
committerAlex Williamson <alex.williamson@hp.com>
Fri, 29 Feb 2008 16:18:01 +0000 (09:18 -0700)
commitdc133446a4385ca1d056ccb499e3546231f5b440
treead96d8f121be3d5a0a2a9ce5983d0bdaf2e94a57
parent51d2e6c05aa7942ff000ae65de944f129744f267
[IA64] kexec: Unpin TLB in the hypervisor

The dom0 relocate_new_kernel code makes a large number of assumptions about
various compile time constants, and thus assumes that these constants are
the same for the hypervisor and dom0. Despite extensive #ifdef work this
has proved to be both fragile and incomplete.

This patch changes things around so that the unpinning work is done
by code provided by the hypervisor, reusing existing code there.
Apart from being a solution that works, its also likely
a much more maintainable solution, as as TLB changes in the hypervisor
code are made, the code paths in the hypervisor are much more likely
to be checked than this one which lies in a completely different tree.

There is also a dom0 Linux kernel portion to this patch.
Its commit message has comments detailing various implementation
issues. See linux-2.6.18-xen.hg ee7015727bd15e80e17e725f70c0a5336e45607a

Signed-off-by: Simon Horman <horms@verge.net.au>
xen/arch/ia64/xen/machine_kexec.c
xen/arch/ia64/xen/relocate_kernel.S
xen/include/asm-ia64/kexec.h